package com.example.app02
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.MenuItem
import android.widget.Button
import android.widget.TextView
import androidx.lifecycle.ViewModelProvider
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

class Activity4 : AppCompatActivity() {
    private lateinit var viewModel: StopwatchViewModel
    private var updateJob: Job? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity4)
        title = getString(R.string.activity4_title)

        // 显示ActionBar返回按钮（原有功能保留）
        supportActionBar?.setDisplayHomeAsUpEnabled(true)
        supportActionBar?.setHomeButtonEnabled(true)

        viewModel = ViewModelProvider(this)[StopwatchViewModel::class.java]
        val tvTime = findViewById<TextView>(R.id.tvTime)
        val btnStartPause = findViewById<Button>(R.id.btnStartPause)
        val btnReset = findViewById<Button>(R.id.btnReset)

        // 1. 绑定布局中的返回按钮并设置点击事件
        findViewById<Button>(R.id.btnBackToMain).setOnClickListener {
            // 关闭当前Activity前，取消计时器协程（避免内存泄漏）
            updateJob?.cancel()
            finish() // 返回一级目录（MainActivity）
        }

        // 启动/暂停按钮（原有功能保留）
        btnStartPause.setOnClickListener {
            if (viewModel.isRunning) {
                viewModel.pause()
                updateJob?.cancel()
                btnStartPause.text = getString(R.string.btn_start)
            } else {
                viewModel.start()
                startUpdateTimer(tvTime)
                btnStartPause.text = getString(R.string.btn_pause)
            }
        }

        // 重置按钮（原有功能保留）
        btnReset.setOnClickListener {
            viewModel.reset()
            updateJob?.cancel()
            tvTime.text = getString(R.string.time_format)
            btnStartPause.text = getString(R.string.btn_start)
        }
    }

    // 定时更新时间显示（原有功能保留）
    private fun startUpdateTimer(tvTime: TextView) {
        updateJob = CoroutineScope(Dispatchers.Main).launch {
            while (true) {
                tvTime.text = viewModel.getFormattedTime()
                delay(30) // 30ms刷新一次
            }
        }
    }

    override fun onDestroy() {
        super.onDestroy()
        updateJob?.cancel() // 销毁时取消协程（原有功能保留）
    }

    // ActionBar返回按钮事件（原有功能保留）
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        return when (item.itemId) {
            android.R.id.home -> {
                updateJob?.cancel() // 取消协程
                finish()
                true
            }
            else -> super.onOptionsItemSelected(item)
        }
    }
}